#include "main.h"


//static uint32_t GPIO_PORT[LEDn] = {LED1_GPIO_PORT, LED2_GPIO_PORT,LED3_GPIO_PORT};
//uint16_t GPIO_PIN[LEDn] = {LED1_PIN, LED2_PIN,LED3_PIN};
//static rcu_periph_enum GPIO_CLK[LEDn] = {LED1_GPIO_CLK, LED2_GPIO_CLK,LED3_GPIO_CLK};

//int Light_time_on_int = 0,Light_time_on_int1 = 0;
//int Light_time_off_int = 0,Light_time_off_int1 = 0;
//int times_int = 0;
//unsigned char Choice_int = 0;
//unsigned char LEDCONTROL_FLAG = 0;
//extern uint8_t MCU_WAKEUP_FLAG;

//void STM_EVAL_LEDInit(Led_TypeDef Led)
//{
//    rcu_periph_clock_enable(GPIO_CLK[Led]);
//    gpio_init(GPIO_PORT[Led], GPIO_MODE_OUT_PP, GPIO_OSPEED_50MHZ, GPIO_PIN[Led]);
//    GPIO_BC(GPIO_PORT[Led]) = GPIO_PIN[Led];
//}



//void STM_EVAL_LEDOn(Led_TypeDef Led)
//{
//	GPIO_BOP(GPIO_PORT[Led]) = GPIO_PIN[Led];
//}


//void STM_EVAL_LEDOff(Led_TypeDef Led)
//{
//  GPIO_BC(GPIO_PORT[Led]) = GPIO_PIN[Led];
//}


//void STM_EVAL_LEDToggle(Led_TypeDef Led)
//{
//  gpio_bit_write(GPIO_PORT[Led], GPIO_PIN[Led],(bit_status)(1-gpio_input_bit_get(GPIO_PORT[Led], GPIO_PIN[Led])));
//}


void Led_Init(void)
{
//	STM_EVAL_LEDInit(LED1);
//	STM_EVAL_LEDInit(LED2);
//	STM_EVAL_LEDInit(LED3);
    
    GPIO_InitTypeDef GPIO_InitStructure;
    /* GPIOD Periph clock enable */
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
    
    GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);
    
    /* Configure  */
    GPIO_InitStructure.GPIO_Pin = LEDtest_PIN ;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
    GPIO_Init(LEDtest_GPIO_PORT, &GPIO_InitStructure);
    
    GPIO_InitStructure.GPIO_Pin = LEDrun_PIN;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
    GPIO_Init(LEDrun_GPIO_PORT, &GPIO_InitStructure);

    GPIO_ResetBits(LEDtest_GPIO_PORT, LEDtest_PIN);
    GPIO_SetBits(LEDrun_GPIO_PORT, LEDrun_PIN);
}

void GPIO_toggle_ledtest(void)
{
    static uint8_t sta=0;
    if(sta==0)
    {
        GPIO_SetBits(LEDtest_GPIO_PORT, LEDtest_PIN);
        sta = 1;
    }
    else
    {
        GPIO_ResetBits(LEDtest_GPIO_PORT, LEDtest_PIN);
        sta = 0;
    }
    
}

void GPIO_toggle_ledrun(void)
{
    static uint8_t sta=0;
    if(sta==0)
    {
        GPIO_SetBits(LEDrun_GPIO_PORT, LEDrun_PIN);
        sta = 1;
    }
    else
    {
        GPIO_ResetBits(LEDrun_GPIO_PORT, LEDrun_PIN);
        sta = 0;
    }
    
}
//void ledcontr(void)
//{
//		if(LEDCONTROL_FLAG)
//		{
//			if((times_int != 0) && (times_int != 0xff))
//			{
//				if(Light_time_on_int != 0)
//				{
//				Light_time_on_int--;
//				if(Light_time_on_int == 0)
//				{
//						switch(Choice_int)
//						{
//							case 0: 
//									STM_EVAL_LEDOn(LED1);
//							break;			
//							case 1: 
//									STM_EVAL_LEDOn(LED2);
//							break;
//							case 2: 
//									STM_EVAL_LEDOn(LED3);
//							break;	
//							case 3: 	
//									STM_EVAL_LEDOn(LED1);
//									STM_EVAL_LEDOn(LED2);	
//									STM_EVAL_LEDOn(LED3);	
//							break;
//							case 4: 	
//									STM_EVAL_LEDToggle(LED1);
//									STM_EVAL_LEDToggle(LED2);	
//									STM_EVAL_LEDToggle(LED3);	
//							break;
//						}
//						 
//					}	
//				}
//				else if(Light_time_off_int != 0)
//				{
//					Light_time_off_int--;
//				if(Light_time_off_int == 0)
//				{
//						switch(Choice_int)
//						{
//							case 0: 
//									STM_EVAL_LEDOff(LED1);

//							break;
//												
//							case 1: 

//									STM_EVAL_LEDOff(LED2);

//							break;
//							case 2: 

//									STM_EVAL_LEDOff(LED3);

//							break;
//							case 3: 		
//									STM_EVAL_LEDOff(LED1);
//									STM_EVAL_LEDOff(LED2);
//									STM_EVAL_LEDOff(LED3);
//							break;
//							case 4: 		
//									STM_EVAL_LEDToggle(LED1);
//									STM_EVAL_LEDToggle(LED2);
//									STM_EVAL_LEDToggle(LED3);
//							break;
//						}
//							Light_time_on_int = Light_time_on_int1;	
//						  Light_time_off_int = Light_time_off_int1;	
//							times_int--;
//					}				
//				}				
//				}
//				else if(times_int == 0xff)
//				{
//						if(Light_time_on_int != 0)
//					{
//					Light_time_on_int--;
//					if(Light_time_on_int == 0)
//					{
//							switch(Choice_int)
//							{
//								case 0: 
//										STM_EVAL_LEDOn(LED1);
//								break;					
//								case 1: 
//										STM_EVAL_LEDOn(LED2);
//								break;
//								case 2: 
//										STM_EVAL_LEDOn(LED3);
//								break;
//								case 3: 
//										STM_EVAL_LEDOn(LED1);
//										STM_EVAL_LEDOn(LED2);	
//										STM_EVAL_LEDOn(LED3);	
//								break;
//								case 4: 
//										STM_EVAL_LEDToggle(LED1);
//										STM_EVAL_LEDToggle(LED2);	
//										STM_EVAL_LEDToggle(LED3);	
//								break;
//							}
//						}	
//					}
//				 else	if(Light_time_off_int != 0)
//					{
//						Light_time_off_int--;
//					if(Light_time_off_int == 0)
//					{
//							switch(Choice_int)
//							{
//								case 0: 
//										STM_EVAL_LEDOff(LED1);
//								break;													
//								case 1: 
//										STM_EVAL_LEDOff(LED2);
//								break;	
//								case 2: 
//										STM_EVAL_LEDOff(LED3);
//								break;
//								case 3: 			
//										STM_EVAL_LEDOff(LED1);
//										STM_EVAL_LEDOff(LED2);		
//										STM_EVAL_LEDOff(LED3);		
//								break;
//								case 4: 
//										STM_EVAL_LEDToggle(LED1);
//										STM_EVAL_LEDToggle(LED2);	
//										STM_EVAL_LEDToggle(LED3);	
//								break;
//							}
//								Light_time_on_int = Light_time_on_int1;	
//								Light_time_off_int = Light_time_off_int1;	

//						}				
//					}	
//				}
//				else if(times_int == 0)
//				{
//						LedCtrlalloff();

//					
//				}
//			}			
//	}


//void LedStatusCtrl(unsigned char Choice,int Light_on_time,int Light_off_time,int times)
//{
//		
//		Light_time_on_int = Light_on_time;
//		Light_time_on_int1 = Light_on_time;
//		Light_time_off_int = Light_off_time;
//		Light_time_off_int1 = Light_off_time;
//		times_int = times;
//		Choice_int = Choice;
//	
//		if((times != 0) && (times != 0xff))
//		{
//		     switch(Choice)
//					{
//						case 0: STM_EVAL_LEDOn(LED1);STM_EVAL_LEDOff(LED2);STM_EVAL_LEDOff(LED3);break;					
//						case 1: STM_EVAL_LEDOff(LED1);STM_EVAL_LEDOn(LED2);STM_EVAL_LEDOff(LED3);break;	
//						case 2: STM_EVAL_LEDOff(LED1);STM_EVAL_LEDOff(LED2);STM_EVAL_LEDOn(LED3);break;
//						case 3: STM_EVAL_LEDOn(LED1);STM_EVAL_LEDOff(LED2);STM_EVAL_LEDOn(LED3);break;
//					}

//		}
//		else if(times == 0)
//		{
//				switch(Choice)
//					{
//						case 0: STM_EVAL_LEDOff(LED1);break;					
//						case 1: STM_EVAL_LEDOff(LED2);break;	
//						case 2: STM_EVAL_LEDOff(LED3);break;	
//						case 3: STM_EVAL_LEDOff(LED1);STM_EVAL_LEDOff(LED2);STM_EVAL_LEDOff(LED3);break;
//					}

//		}
//		else if(times == 0xff)
//		{
//			if((Light_on_time != 0) && (Light_off_time != 0))
//			{
//				switch(Choice)
//					{
//						case 0: STM_EVAL_LEDOn(LED1);STM_EVAL_LEDOff(LED2);STM_EVAL_LEDOff(LED3);break;					
//						case 1: STM_EVAL_LEDOff(LED1);STM_EVAL_LEDOn(LED2);STM_EVAL_LEDOff(LED3);break;	
//						case 2: STM_EVAL_LEDOff(LED1);STM_EVAL_LEDOff(LED2);STM_EVAL_LEDOn(LED3);break;
//						case 3: STM_EVAL_LEDOn(LED1);STM_EVAL_LEDOff(LED2);STM_EVAL_LEDOn(LED3);break;
//					}

//			}
//			else
//			{
//					switch(Choice)
//					{
//						case 0: STM_EVAL_LEDOn(LED1);STM_EVAL_LEDOff(LED2);STM_EVAL_LEDOff(LED3);break;					
//						case 1: STM_EVAL_LEDOff(LED1);STM_EVAL_LEDOn(LED2);STM_EVAL_LEDOff(LED3);break;	
//						case 2: STM_EVAL_LEDOff(LED1);STM_EVAL_LEDOff(LED2);STM_EVAL_LEDOn(LED2);break;
//					}
//			
//			}
//			
//		}	
//		LEDCONTROL_FLAG = 1;
//}

//void LedCtrlalloff(void)
//{
//		STM_EVAL_LEDOff(LED1);
//		STM_EVAL_LEDOff(LED2);
//		STM_EVAL_LEDOff(LED3);
//		LEDCONTROL_FLAG = 0;
//}

